<script>
import * as util from './common/util'
import { modelSet } from './store/modelOpt.js'
import _ from 'lodash'
import { router } from '@/router'
import { $serverUrl, linkTo, log, login_wx, message } from './common/util'

appInit()

function appInit(){
  let appId = ''
  // #ifdef MP-WEIXIN
  const accountInfo = uni.getAccountInfoSync()
  appId = accountInfo.miniProgram.appId
  // #endif
  // #ifdef H5
  // #endif

  if (util.modelGet('env.dev')) {
    appId = 'wx63ba6e59b5cd0fb7'
    uni.setStorageSync('token', '66667')
  }

  console.log(`appId`, appId)

  let appInfoPromise = new Promise(async (resolve, reject) => {
    // let { data: appInfo } = await util.requestPost('/index/index', { app_id: appId })
    let appInfo = {
      type: 1,
    }

    console.log(`appConfig`, appInfo)

    let homePageUrl = { 1: '/pages/index/home', 2: '/pages/index/home', 3: '/pages/index/home' }[appInfo.type]
    let typeTitle = appInfo.name
    let menuList = [
      {
        'pagePath': '/pages/index/home',
        'iconPath': util.$bgPath + '/menu_40.png',
        'selectedIconPath': util.$bgPath + '/menu_41.png',
        'text': '饮水',
      },
      {
        'pagePath': '/pages/discover/index',
        'iconPath': util.$bgPath + '/menu_00.png',
        'selectedIconPath': util.$bgPath + '/menu_01.png',
        'text': '发现',
      },
      {
        'pagePath': '/pages/device/index',
        'iconPath': util.$bgPath + '/menu_20.png',
        'selectedIconPath': util.$bgPath + '/menu_21.png',
        'text': '设备',
      },
      {
        'pagePath': '/pages/user/index',
        'iconPath': util.$bgPath + '/menu_30.png',
        'selectedIconPath': util.$bgPath + '/menu_31.png',
        'text': '我的',
      },
    ]

    homePageUrl = _.first(menuList).pagePath

    util.modelSet('appInfo', {
      ...appInfo, // {admin_id}
      typeTitle,// 类型值
      menuList,
      menuListActiveIndex: 0,
      isIndexLoad: false,
      homePageUrl,
    })

    let token = uni.getStorageSync('token')

    resolve()

    if (token) {
      util.userInfoGet().catch((e) => {
        console.log(`userInfoGet().catch() e`, e)
        uni.removeStorageSync('token')
        // autoLogin()
        // util.linkTo(`/pages2/user/index`)
      })
    } else {
      // autoLogin()
      // util.linkTo(`/pages2/user/index`)
    }

  })

  util.setGlobalData('appInfoPromise', appInfoPromise)
}

function updateVersion(){
  //获取小程序更新机制兼容
  if (uni.canIUse('getUpdateManager')) {
    const updateManager = uni.getUpdateManager()
    updateManager.onCheckForUpdate(function (res){
      // 请求完新版本信息的回调
      if (res.hasUpdate) {
        updateManager.onUpdateReady(function (){
          uni.showModal({
            title: '更新提示',
            content: '新版本已经准备好，是否重启应用？',
            success: function (res){
              if (res.confirm) {
                // 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
                updateManager.applyUpdate()
              }
            },
          })
        })
        updateManager.onUpdateFailed(function (){
          // 新的版本下载失败
          uni.showModal({
            title: '已经有新版本了哟~',
            content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
          })
        })
      }
    })
  } else {
    // 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
    uni.showModal({
      title: '提示',
      content: '当前微信版本过低，无法更好体验程序，请升级到最新微信版本后重试。',
    })
  }
}

/*
* 自动登录
* wx可以通过code实现自动登录
* h5一般无自动登录,需要手动登录
* */
function autoLogin(){
  // #ifdef MP-WEIXIN
  util.modelSet('loginPromise', util.login_wx())
  // #endif
  // #ifdef H5
  util.modelSet('loginPromise', util.login_h5())
  // #endif
}

export default {
  onLaunch: function (){
    console.log('App Launch')
    updateVersion()
  },
  onShow: function (){
    console.log('App Show')
  },
  onHide: function (){
    console.log('App Hide')
  },
}
</script>

<style>
/*每个页面公共css */
</style>
